package com.demo.apparel.service.uniapp;

import com.demo.apparel.vo.ClothesCategoryVO;
import com.demo.apparel.vo.PageVO;
import com.demo.apparel.vo.uniapp.CategoryBrowseVO;
import com.demo.apparel.vo.uniapp.SimpleClothesVO;

import java.util.List;

public interface ClothesBrowseService {
    /**
     *h获取所有的衣物数据
     * @return
     */
    List<ClothesCategoryVO> getClothesGroupedByCategory();

    /**
     *获取当前的用户数据
     * @param userId
     * @return
     */
    List<CategoryBrowseVO> getUserClothesByCategory(String userId);

    /**
     * 搜索衣物功能
     * @param userId
     * @param keyword
     * @param season
     * @return
     */
    List<SimpleClothesVO> searchUserClothes(String userId, String keyword, String season);

    /**
     * 分页查询的搜索
     * @param userId
     * @param keyword
     * @param season
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageVO<SimpleClothesVO> searchUserClothesPage(String userId, String keyword, String season, int pageNum, int pageSize);

    /**
     * 分页搜索所有用户的衣服，根据类型名（keyword）、描述(description)和季节(season)过滤
     *
     * @param keyword    衣服类型名关键字，支持模糊匹配
     * @param description 衣服描述关键字，支持模糊匹配
     * @param season     季节，如“春夏”或“秋冬”，可以为空
     * @param pageNum    当前页码，从1开始
     * @param pageSize   每页大小
     * @return 分页后的简单衣服视图对象列表
     */
    PageVO<SimpleClothesVO> searchAllUsersClothesPage(String keyword, String description, String season, int pageNum, int pageSize);

    PageVO<SimpleClothesVO> searchUserClothesPagees(String userId, String keyword, String description, String season, int pageNum, int pageSize);
}

